package org.lql.chaos.mq.rabbitmq.constant;

/**
 * @author: liangqinglong
 * @date: 2025-08-08 11:08
 * @description:
 **/
public class RabbitMQConstant {

	// ===================================================================================================================
	public static final String FANOUT_EXCHANGE = "fanout.exchange";
	public static final String FANOUT_QUEUE_1 = "fanout.queue1";
	public static final String FANOUT_QUEUE_2 = "fanout.queue2";
	public static final String FANOUT_ROUTING_KEY = "fanout.routing.key";
	// ===================================================================================================================
	public static final String DIRECT_EXCHANGE = "direct.exchange";
	public static final String DIRECT_QUEUE = "direct.queue";
	public static final String DIRECT_ROUTING_KEY = "direct.routing.key";
	// ===================================================================================================================
	public static final String TOPIC_EXCHANGE = "topic.exchange";
	public static final String TOPIC_QUEUE_1 = "topic.queue1";
	public static final String TOPIC_QUEUE_2 = "topic.queue2";
	public static final String TOPIC_X_RABBITMQ_X_KEY = "*.rabbitmq.*";
	public static final String TOPIC_X_X_CLIENT_KEY = "*.*.client";
	public static final String TOPIC_COM_X_KEY = "com.#";
	// ===================================================================================================================
	// 持久化消息使用
	public static final String PERSISTENT_EXCHANGE = "persistent.exchange";
	public static final String PERSISTENT_QUEUE = "persistent.queue";
	public static final String PERSISTENT_ROUTING_KEY = "persistent.routing.key";
	// ===================================================================================================================
	// 备用交换机（Alternate Exchange，AE）
	public static final String DEFAULT_EXCHANGE = "default.exchange";
	public static final String ALTERNATE_EXCHANGE = "alternate.exchange";
	public static final String ALTERNATE_QUEUE = "alternate.queue";
	public static final String ALTERNATE_ROUTING_KEY = "alternate.routing.key";
	// ===================================================================================================================
	// 订单队列
	public static final String ORDER_EXCHANGE = "order.exchange";
	public static final String ORDER_QUEUE = "order.queue";
	public static final String ORDER_ROUTING_KEY = "order.routing.key";
	// 订单死信队列（Dead Letter Queue，DLQ）
	public static final String ORDER_DEAD_EXCHANGE = "order.dead.exchange";
	public static final String ORDER_DEAD_QUEUE = "order.dead.queue";
	public static final String ORDER_DEAD_ROUTING_KEY = "order.dead.routing.key";
	// ===================================================================================================================
	// 业务队列
	public static final String BUSINESS_EXCHANGE = "business.exchange";
	public static final String BUSINESS_QUEUE = "business.queue";
	public static final String BUSINESS_ROUTING_KEY = "business.routing.key";
	// 业务重试队列（多级重试）
	public static final String BUSINESS_RETRY_EXCHANGE = "business.retry.exchange";
	public static final String BUSINESS_RETRY_QUEUE_PREFIX = "business.retry.queue";
	public static final String BUSINESS_RETRY_ROUTING_KEY_PREFIX = "business.retry.routing.key";
}
